//Не совсем понял задание: "Если соединение взято из пула и не используется в течении IDLE_TIMEOUT, то данное соединение автоматически возвращается в пул."
//Вернуть я могу, но это решение предполагает что класс который получил ссылку на объект ControlledConnection - потерял её.
//Или дописать интерфейс который будет давать возможность затирать ссилку в объекта что вызвал checkOut.


package concurrency.part2.task3;

import java.sql.Connection;

public class ControlledConnection  {
    private boolean used=false;
    private final Connection connection;
    private long time;

    public ControlledConnection(Connection connection) {
        this.connection=connection;
    }

    synchronized boolean isUsed() {
        return used;
    }

    private synchronized void use(){
        used=true;
    }

    public long getTime() {
        return time;
    }

    public synchronized void checkOut(){
        used=false;
        time=System.currentTimeMillis();
    }
}
